package cn.butcher21.dao;

import cn.butcher21.pojo.Click;
import cn.butcher21.pojo.GroupTask;
import cn.butcher21.pojo.Project;
import cn.butcher21.pojo.Work;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 * butcher create in 2021/04/10/17:07
 */
public interface DaoWork {
    /**
     * 获取工作任务表
     *
     * @return 信息
     * @throws SQLException 异常
     */
    List<Work> getMsg() throws SQLException;

    /**
     * 获取工作任务表
     *
     * @param num 项目编号
     * @param gid 小组编号
     * @return 信息
     * @throws SQLException 异常
     */
    List<Work> getMsg(String num, String gid) throws SQLException;

    /**
     * 完成任务
     *
     * @param id 任务点id
     * @throws SQLException 异常
     */
    void complete(String id) throws SQLException;

    /**
     * 打卡
     *
     * @param id
     * @param click
     * @throws SQLException
     */
    void click(String id, Click click) throws SQLException;

    /**
     * 查看打卡记录
     *
     * @param id 记录id
     * @return 记录列表
     * @throws SQLException 异常
     */
    List<Click> lookClick(String id) throws SQLException;


    /**
     * 插入一条任务数据
     *
     * @param work 任务
     * @throws SQLException 异常
     */
    void add(Work work) throws SQLException;

    /**
     * 添加项目
     *
     * @param project 项目
     * @throws SQLException 异常
     */
    void add(Project project, String gid) throws SQLException;

    /**
     * 通过传入的日期，获取每个小组每天的打卡
     *
     * @param date 日期
     * @return 信息
     * @throws SQLException 异常
     */
    List<GroupTask> getGroupTasks(String date) throws SQLException;

    void update(String id, String date, String msg) throws SQLException;

    /**
     * 获取老师的评价
     *
     * @param gid  小组id
     * @param date 日期
     * @return 评价信息
     * @throws SQLException 异常
     */
    Map<String, String> getTeacherEvaluateMsg(String gid, String date) throws SQLException;

}
